#pragma once

#include "HSModelAPI.h"
#include "GeometryUtils.h"
#include <memory>
#include <string>
#include <map>

class Model3D;

class Model3DStorage
  {
  public:
    HSMODEL_API void AddModel(const std::string& i_type, std::shared_ptr<Model3D> i_model, const TVector3& i_size, bool i_need_shift = true);
    HSMODEL_API const Model3D& GetModel(const std::string& i_type) const;

  private:
    void _FitModelSize(std::shared_ptr<Model3D> i_model, const TVector3& i_size);
    void _ParalelModelShift(std::shared_ptr<Model3D> i_model);
  private:
    std::map<std::string, std::shared_ptr<Model3D> > m_models;
  };